/**
 * @file NEO_GPS.h
 * @brief NEO GPS模块驱动头文件
 * @details 定义GPS相关的宏定义、函数声明和数据结构
 * @author 开发者
 * @date 创建日期
 */

#ifndef __NEO_GPS__
#define __NEO_GPS__

/* 系统头文件包含 */
#include "gd32f4xx.h"         // GD32F4xx系列MCU标准外设库
#include "uart.h"             // 串口驱动头文件
#include <stdio.h>            // 标准输入输出库
#include <string.h>           // 字符串处理库
#include "FreeRTOS.h"         // FreeRTOS核心头文件
#include "task.h"             // FreeRTOS任务管理头文件
#include "queue.h"            // FreeRTOS队列管理头文件
#include "RTC.h"              // 实时时钟驱动头文件
#include "lvgl.h"             // LVGL图形库头文件
#include "ui.h"               // 用户界面头文件
#include "KEYS.h"             // 按键驱动头文件
#include "speed.h"            // 速度处理头文件
#include "GPS_num.h"          // GPS数据处理头文件

/* 时区偏移宏定义 */
#define TIMEZONE_OFFSET  8    // 北京时间UTC+8

/* 函数声明 */
/**
 * @brief GPS数据解析函数声明
 * @param buff GPS原始数据缓冲区
 * @details 解析GNRMC语句，提取时间、状态、速度、日期等信息
 */
void get_gps_data(uint8_t *buff);

/**
 * @brief GPS时间获取函数声明
 * @param buff GPS时间数据缓冲区
 * @details 从GPS数据中提取时间信息
 */
void get_time(uint8_t *buff);

#endif
